草庐IT

memory - 确定虚拟内存的页表大小

全部标签

ruby - 如何确定是否在 ruby​​ 方法中给出了可选参数

我有一个带有可选参数的方法。我如何确定是否给出了Argument?我想出了以下解决方案。我问这个问题是因为我对其中任何一个都不完全满意。还有更好的吗?nil作为默认值defm(a=nil)ifa.nil?...endend这个的缺点是,无法确定是没有参数还是nil被给出。自定义NoArgument作为默认值classNoArgumentenddefm(a=NoArgument.new)ifNoArgument===a...endend是否给定nil是可以判断的,但是NoArgument的实例也存在同样的问题。评估省略号的大小defm(*a)raiseArgumentErrorifm.s

Ruby:如何确定正在读取的文件是二进制文件还是文本文件

我正在用Ruby编写一个程序,它将在目录中的文本文件中搜索字符串-类似于Grep。我不希望它尝试在二进制文件中搜索,但我无法在Ruby中找到确定文件是二进制文件还是文本文件的方法。该程序需要同时在Windows和Linux上运行。如果有人能指出我正确的方向,那就太好了。谢谢,黄原素 最佳答案 libmagic是一个检测文件类型的库。对于这个解决方案,我假设所有以text/开头的mimetype都代表文本文件。其他的都是二进制文件。这个假设并不适用于所有mime类型(例如application/x-latex、application/

ruby - 确定一个数组是否包含ruby中另一个数组的内容

在ruby​​中,我如何测试一个数组不仅包含另一个数组的元素,而且以特定顺序包含它们?correct_combination=[1,2,3,4,5][1,5,8,2,3,4,5].function_name(correct_combination)#=>false[8,10,1,2,3,4,5,9].function_name(correct_combination)#=>true我尝试使用include,但那是用来测试[1,2,3].include?(2)是否为真。 最佳答案 你可以使用each_cons方法:arr=[1,2,3

ruby-on-rails - 虚拟属性和质量赋值

开发者!我无法理解接下来的情况例如我有模型classPg::City我可以使用这样的代码:c=Pg::City.new({:population=>1000})putsc.population1000但是如果我取消注释上面的attr_accessible代码会抛出警告WARNING:Can'tmass-assignprotectedattributes:population如何将虚拟属性与模型属性一起用于质量分配?谢谢! 最佳答案 使用attr_accessor添加变量不会自动将其添加到attr_accessible。如果您要使用a

ruby-on-rails - 如何在 Ruby on Rails 中执行期间确定 Controller 变量的值?

在执行期间确定Controller变量值的最佳方法是什么?例如,有没有办法在代码中插入一个中断,并使变量的值输出到屏幕(或日志)? 最佳答案 是的。最简单的方法是将值提升为字符串。像这样:raise@foo.to_s或者,您可以安装调试器(geminstallruby​​-debug),然后使用--debugger标志启动开发服务器。然后,在您的代码中,调用debugger指令。在调试器提示中,您有许多命令,包括打印变量值的p。更新:这里是abitmoreaboutruby-debug.

ruby-on-rails - 如何分析我的 rspec 测试以找到最大的内存消耗?

我们使用circleci作为部署过程的一部分。Circleci运行了我们的3000次测试,有时会失败,因为它达到了4GB的内存限制。看起来我们的一些测试正在创建大量对象并耗尽大量内存。我只是不知道哪些是。有没有一种简单的方法可以分析给定测试所用的内存?如果我知道如何执行此操作,我可以轻松地遍历每个测试并运行它并查看它使用了多少内存。 最佳答案 您可以使用ruby-profgem来分析内存使用情况。但首先您可以尝试使用--profileflag运行rspec.它将为您提供10个最慢的规范,这可能是开始寻找消耗大量内存的规范的好地方。

ruby - Cookie 数据大小超过 4K - 但其 'only' 1100 字节已加密

我有一个使用Rack::Session::Cookie的Sinatra应用useRack::Session::Cookie,:key=>'my.key',:path=>'/',:expire_after=>3600,#Inseconds:secret=>'something'我在session中有一个地方可以设置数据,我转储了session,大约在erb调用之前有600字节puts"sessionis#{session.inspect}"==>400bytesoftext然后我得到Warning!Rack::Session::Cookiedatasizeexceeds4K.Warnin

ruby-on-rails - 创建许多新对象时内存膨胀

当我运行它然后在OSX事件监视器中观察我的ruby​​进程的内存消耗时,内存以大约3MB/s的速度增加。如果我删除事务,内存消耗量将减半,但内存占用量仍会继续增加。我的生产应用程序有一个问题,Heroku由于内存消耗而终止了进程。有没有一种方法可以在不增加内存的情况下执行以下操作?如果我注释掉.save行,那没关系,但这当然不是解决方案。ActiveRecord::Base.transactiondo10000000.timesdo|time|puts"----#{time}----"a=Activity.new(:name=>"#{time}Activity")a.save!(:va

ruby - 在 JRuby 中,如何确定导致 java.lang.ThreadDeath 的原因?

在为一些与JRuby中的临时文件交互的代码运行单元测试时,我有时会得到以下信息:Exception:java.lang.ThreadDeaththrownfromtheUncaughtExceptionHandlerinthread"Thread-6395"它似乎没有引起任何问题,但这是怎么回事,我如何确定它发生在哪里?我尝试打开-d,但这并没有给我异常的堆栈跟踪。 最佳答案 FWIW:这可能与http://jira.codehaus.org/browse/JRUBY-7074有关.我偶尔会在不使用反引号但调用系统的JRuby程序中

ruby - 分配给 "lib/ruby/2.1.0/timeout.rb"的 1GB 内存

我在循环中使用Twitter、Mongo和Parallel来检索和存储数据。内存利用率达到1.5GB+GC怎么不清理这个?更新:Hereisthescriptinquestion.allocatedmemorybylocation-----------------------------------973409328/Users/jordan/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:82359655091/Users/jordan/.rvm/gems/ruby-2.1.5/gems/json-1.8.3/lib/json/com